package com.lh.jianzhioffer.专项练习.数组;

/**
 * @author: linghao
 * @since: 2023/2/20
 *
 * 给定一个正整数数组 nums和整数 k ，请找出该数组内乘积小于 k 的连续的子数组的个数
 *
 * 滑动窗口
 */
public class 乘积小于K的子数组009 {


    public int numSubarrayProductLessThanK(int[] nums, int k) {
        int j=0,tempAns=1,ret=0;
        for(int i=0;i<nums.length;i++){
            tempAns *= nums[i];
            while (j<=i && tempAns >= k){
                tempAns /= nums[j];
                j++;
            }
            ret += i - j +1;
        }
        return ret;
    }
}
